import { isFunction } from '@/utils/validate'

/**
 * 性别
 */
const GenderEnum = {
  MALE: {
    label: '男',
    value: 0,
  },
  FEMALE: {
    label: '女',
    value: 1,
  },
  UNKNOWN: {
    label: '未知',
    value: 2,
  },

  /**
   * 获取所有的枚举
   * @return {*[]}枚举数组
   */
  allEnums() {
    let enums = []
    for (let key in GenderEnum) {
      if (!isFunction(GenderEnum[key])) {
        enums.push(GenderEnum[key])
      }
    }
    return enums
  },
  /**
   * 根据 label 获取 枚举
   * @param label label
   * @return {*} 对应的枚举
   */
  getEnumByLabel(label) {
    for (let key in GenderEnum) {
      if (GenderEnum[key].label === label) {
        return GenderEnum[key]
      }
    }
    return {}
  },

  /**
   * 根据 label 获取 枚举
   * @param value value
   * @return {*} 对应的枚举
   */
  getEnumByValue(value) {
    for (let key in GenderEnum) {
      if (GenderEnum[key].value === value) {
        return GenderEnum[key]
      }
    }
    return {}
  },
}
// 设置当前对象只读
Object.freeze(GenderEnum)

export default GenderEnum
